package io.kimmking.java8;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class CollectionDemo {
    public static void main(String[] args) throws IOException {
    
        List<Integer> list = Arrays.asList(4,2,3,5,1,2,2,7,6);   // Arrays还可以包装stream
        print(list);
        Collections.sort(list);
        print(list);
        Collections.reverse(list);
        print(list);
        Collections.shuffle(list); //随机打乱原来的顺序。
        print(list);
    
        System.out.println(Collections.frequency(list, 2)); //于统计指定对象在指定集合中出现的次数
        System.out.println(Collections.max(list)); //根据自然排序返回给定集合的最大值元素。
                
        Collections.fill(list,8);//于将指定列表的所有元素替换为指定元素。
        print(list);
        
        list = Collections.singletonList(666);//于将指定列表的所有元素替换为指定元素。
        print(list);

        List<A> res = new ArrayList<>();
        res.add(new A());
        List<A> dest = new ArrayList<>();
        dest.add(new A());
        Collections.copy(dest, res); //此方法必须元素个数相同，且对象只是浅拷贝
        System.out.println(res.get(0).equals(dest.get(0)));

        
    }
    
    private static void print(List<Integer> list) {
        System.out.println(String.join(",",list.stream().map(i -> i.toString()).collect(Collectors.toList()).toArray(new String[]{})));  
    }
    
}
